import Vue from "vue";
import Router from "vue-router";
import Layout from "@/layout";

Vue.use(Router);

const constantRoutes = [
  {
    path: "/redirect",
    component: Layout,
    hidden: true,
    children: [
      {
        path: "/redirect/:path*",
        component: () => import("@/views/redirect/index"),
      },
    ],
  },
  {
    path: "/login",
    name: "Login",
    hidden: true,
    component: () => import("@/views/login/index"),
    meta: { title: "登录" },
  },
  {
    path: "/product",
    name: "product",
    hidden: true,
    component: () => import("@/views/exam/paper/product"),
    meta: { title: "问卷发布"},
  },
  {
    path: "/",
    component: Layout,
    redirect: "/dashboard",
    children: [
      {
        path: "dashboard",
        component: () => import("@/views/dashboard/index"),
        name: "Dashboard",
        meta: { title: "首页", icon: "home", affix: true },
      },
    ],
  },
  {
    path: "/user",
    component: Layout,
    name: "UserPage",
    meta: {
      title: "成员管理",
      icon: "users",
    },
    children: [
      {
        path: "student/list",
        component: () => import("@/views/user/student/list"),
        name: "UserStudentPageList",
        meta: { title: "用户列表", noCache: true },
      },
      {
        path: "student/edit",
        component: () => import("@/views/user/student/edit"),
        name: "UserStudentEdit",
        meta: {
          title: "用户添加/编辑",
          noCache: true,
          activeMenu: "/user/student/list",
        },
        hidden: true,
      },
      {
        path: "admin/list",
        component: () => import("@/views/user/admin/list"),
        name: "UserAdminPageList",
        meta: { title: "管理员列表", noCache: true },
      },
      {
        path: "admin/edit",
        component: () => import("@/views/user/admin/edit"),
        name: "UserAdminEdit",
        meta: {
          title: "管理员添加/编辑",
          noCache: true,
          activeMenu: "/user/admin/list",
        },
        hidden: true,
      },
    ],
  },
  {
    path: "/exam",
    component: Layout,
    name: "ExamPage",
    meta: {
      title: "题库管理",
      icon: "exam",
    },
    children: [
      {
        path: "paper/wjList",
        component: () => import("@/views/exam/paper/wjList"),
        name: "ExamPaperPageWjList",
        meta: { title: "问卷列表", noCache: true },
      },
      {
        path: "wj-question/list",
        component: () => import("@/views/exam/wj-question/list"),
        name: "ExamWJQuestionPageList",
        meta: { title: "问卷题目列表", noCache: true },
      },
      {
        path: "paper/list",
        component: () => import("@/views/exam/paper/list"),
        name: "ExamPaperPageList",
        meta: { title: "试卷列表", noCache: true },
      },
      {
        path: "paper/wjEdit",
        component: () => import("@/views/exam/paper/wjEdit"),
        name: "ExamPaperwjEdit",
        meta: {
          title: "问卷编辑",
          noCache: true,
          activeMenu: "/exam/paper/wjList",
        },
        hidden: true,
      },
      {
        path: "paper/edit",
        component: () => import("@/views/exam/paper/edit"),
        name: "ExamPaperEdit",
        meta: {
          title: "试卷编辑",
          noCache: true,
          activeMenu: "/exam/paper/list",
        },
        hidden: true,
      },
      {
        path: "question/list",
        component: () => import("@/views/exam/question/list"),
        name: "ExamQuestionPageList",
        meta: { title: "考试题目列表", noCache: true },
      },
      {
        path: "question/edit/singleChoice",
        component: () => import("@/views/exam/question/edit/single-choice"),
        name: "singleChoicePage",
        meta: {
          title: "单选题编辑",
          noCache: true,
          activeMenu: "/exam/question/list",
        },
        hidden: true,
      },
      {
        path: "question/edit/multipleChoice",
        component: () => import("@/views/exam/question/edit/multiple-choice"),
        name: "multipleChoicePage",
        meta: {
          title: "多选题编辑",
          noCache: true,
          activeMenu: "/exam/question/list",
        },
        hidden: true,
      },
      {
        path: "question/edit/trueFalse",
        component: () => import("@/views/exam/question/edit/true-false"),
        name: "trueFalsePage",
        meta: {
          title: "判断题编辑",
          noCache: true,
          activeMenu: "/exam/question/list",
        },
        hidden: true,
      },
      {
        path: "question/edit/gapFilling",
        component: () => import("@/views/exam/question/edit/gap-filling"),
        name: "gapFillingPage",
        meta: {
          title: "填空题编辑",
          noCache: true,
          activeMenu: "/exam/question/list",
        },
        hidden: true,
      },
      {
        path: "question/edit/shortAnswer",
        component: () => import("@/views/exam/question/edit/short-answer"),
        name: "shortAnswerPage",
        meta: {
          title: "简答题编辑",
          noCache: true,
          activeMenu: "/exam/question/list",
        },
        hidden: true,
      },
    ],
  },
  {
    path: "/task",
    component: Layout,
    name: "TaskPage",
    meta: {
      title: "任务管理",
      icon: "task",
    },
    alwaysShow: true,
    children: [
      {
        path: "list",
        component: () => import("@/views/task/list"),
        name: "TaskListPage",
        meta: { title: "任务列表", noCache: true },
      },
      {
        path: "edit",
        component: () => import("@/views/task/edit"),
        name: "TaskEditPage",
        meta: { title: "任务创建", noCache: true },
      },
    ],
  },
  {
    path: "/education",
    component: Layout,
    name: "EducationPage",
    meta: {
      title: "防治管理",
      icon: "education",
    },
    alwaysShow: true,
    children: [
      {
        path: "subject/list",
        component: () => import("@/views/education/subject/list"),
        name: "EducationSubjectPage",
        meta: { title: "病症列表", noCache: true },
      },
      {
        path: "subject/edit",
        component: () => import("@/views/education/subject/edit"),
        name: "EducationSubjectEditPage",
        meta: {
          title: "病症科类编辑",
          noCache: true,
          activeMenu: "/education/subject/list",
        },
        hidden: true,
      },
    ],
  },
  {
    path: "/answer",
    component: Layout,
    name: "AnswerPage",
    meta: {
      title: "成绩管理",
      icon: "answer",
    },
    alwaysShow: true,
    children: [
      {
        path: "list",
        component: () => import("@/views/answer/list"),
        name: "AnswerPageList",
        meta: { title: "答卷列表", noCache: true },
      },
    ],
  },
  {
    path: "/message",
    component: Layout,
    hidden: true,
    children: [
      {
        path: "list",
        component: () => import("@/views/message/list"),
        name: "MessageListPage",
        meta: { title: "消息列表", noCache: true },
      },
      {
        path: "send",
        component: () => import("@/views/message/send"),
        name: "MessageSendPage",
        meta: { title: "消息发送", noCache: true },
      },
    ],
  },
  {
    path: "/log",
    component: Layout,
    hidden: true,
    children: [
      {
        path: "user/list",
        component: () => import("@/views/log/list"),
        name: "LogUserPage",
        meta: { title: "用户日志", noCache: true },
      },
    ],
  },
  {
    path: "/profile",
    component: Layout,
    hidden: true,
    children: [
      {
        path: "index",
        component: () => import("@/views/profile/index"),
        name: "Profile",
        meta: { title: "用户信息", icon: "user", noCache: true },
      },
    ],
  },
  {
    path: "*",
    hidden: true,
    component: () => import("@/views/error-page/404"),
    meta: { title: "404", noCache: true },
  },
];

const router = new Router({
  routes: constantRoutes,
});

export { constantRoutes, router };
